Tight SCM Integration
QuickBuild works with various SCM tightly to detect code changes, checkout/update source code, create labels, or to pull files of different revision for source view and diff. It also collects uncommitted SCM changes from user desktop in case of a proof build. For some of the SCM, QuickBuild supports to use user contact information maintained in SCM system to send out build notifications if the committer is not managed by QuickBuild. User and file activities in SCM are also collected and the trends are graphed overtime.
Flexible checkout strategy, either from server, or from agents
Checkout strategy is very flexible in QuickBuild. You may checkout all source code from server and dispatch relevant part to desired agents for build and test, or you can checkout different part of the source from different agent directly. With proper setting, the same SCM revision will be used across different checkouts even if they happen concurrently at different grid nodes.
View/diff build changes by commits or files
When a build is triggered (either manually or automatically), QuickBuild get source changes included in the build from SCM. The changes are presented in two ways: by commits and by files. "By commits" tells who has made the change, and "By files" tells what has been changed. Files can be diffed both by commits (the revision before commit and after commit), and by builds (the revision in previous build and in current build). You may also compare two different builds to get the source changes even if they are not adjacent.
Quiet period support to reduce the risk of triggering build against partial work
QuickBuild uses quiet period to avoid triggering build against half-work. When a build is fired (either manually or automatically), it checks to see if the SCM system is quiet for a certain period of time. If yes, it gets the current SCM revision and uses that revision for checkout; otherwise, it waits until there are no commits for that period of time.
Exclude certain directories/files when detect changes from SCM
When detecting changes in SCM, QuickBuild can be configured to optionally ignore certain directories and files. This is important to avoid un-necessary builds caused by documentation or art work changes.
Label source code as part of build workflow
User can add step to label source code as part of the build workflow. QuickBuild ensures that the label is attached to the same set of source used for current build. This holds true not only for builds that are generated by building source from SCM, but also for builds that get promoted from another build.
Verify GitHub pull requests and Gerrit changes
QuickBuild can be configured to detect changed pull requests in GitHub and build against them automatically. The build result can be posted back to GitHub like below after build finishes:
Users and files activities in SCM
QuickBuild collects users activities in SCM when build is running, and graph the trends overtime. Users activities trends can also be compared with other configurations.
QuickBuild also collects files activities in SCM when build is running, and graph the commit trends overtime, to reveal important factors such as most active files. Commit trends can also be compared with other configurations.